/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pe.edu.unmsm.SIASS.Bean;

import Pe.edu.unmsm.SIASS.DAO.HorarioGrupoDAO;
import Pe.edu.unmsm.SIASS.DAO.ProfesorDAO;
import Pe.edu.unmsm.SIASS.DAOImpl.HorarioGrupoDAOImpl;
import Pe.edu.unmsm.SIASS.DAOImpl.ProfesorDAOImpl;
import Pe.edu.unmsm.SIASS.Dominio.HorarioGrupo;
import Pe.edu.unmsm.SIASS.Dominio.Profesor;
import Pe.edu.unmsm.SIASS.Dominio.Usuario;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author PC-14
 */
@ManagedBean(name = "menuBean")
@SessionScoped
public class MenuBean implements Serializable{

    public List<HorarioGrupo> listaHG;
    Usuario usuario;
    private ProfesorDAO profesorDAO;
    public Profesor profesor;
    private HorarioGrupoDAO horarioGrupDAO;
    public HorarioGrupo horarGrupSelec;
    public boolean selec=true;

    public MenuBean() {
        horarGrupSelec = new HorarioGrupo();
        FacesContext context = FacesContext.getCurrentInstance();
        Application appli = context.getApplication();
        usuario = (Usuario) appli.evaluateExpressionGet(context, "#{loginBean.usuario}", Usuario.class);

        mostrarCursos();
        
    }

    public void mostrarCursos(){
        horarioGrupDAO = new HorarioGrupoDAOImpl();   
        Date diaActual = new Date();
        String dia = null;
        int d = diaActual.getDay();
        if(d==1){
            dia = "Lunes";
        }
        else{
            if(d==2){
                dia = "Martes";
            }
            else{
                if(d==3){
                    dia = "Miercoles";
                }
                else{
                    if(d==4){
                        dia = "Jueves";
                    }
                    else{
                        if(d==5){
                            dia = "Viernes";
                        }
                        else{
                            if(d==6){
                                dia = "Sabado";
                            }
                            else{
                                dia = "Domingo";
                            }
                        }
                    }
                }
            }
        }
        diaActual.getDate();
        profesorDAO = new ProfesorDAOImpl();
        profesor = profesorDAO.obtenerProfesor(usuario.getPersona().getIdPersona());
        listaHG = horarioGrupDAO.listarHorarioGrupo(dia, profesor.getIdProfesor());
    }
    
    public void validarHorario(){
        String validar="";
        Date d = new Date();
        if(d.getHours()>=horarGrupSelec.getHorario().getHoraInicio().getHours() && d.getHours()<horarGrupSelec.getHorario().getHoraFin().getHours()){
            System.out.println("Correcto");
            selec=false;
        }
        else{
            selec=true;
            System.out.println("incorrecto");
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "Solo puede registrar asistencia dentro del horario de clase", null));
        }
       
    }

    public List<HorarioGrupo> getListaHG() {
        return listaHG;
    }

    public void setListaHG(List<HorarioGrupo> listaHG) {
        this.listaHG = listaHG;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public HorarioGrupo getHorarGrupSelec() {
        return horarGrupSelec;
    }

    public void setHorarGrupSelec(HorarioGrupo horarGrupSelec) {
        this.horarGrupSelec = horarGrupSelec;
    }

    public boolean isSelec() {
        return selec;
    }

    public void setSelec(boolean selec) {
        this.selec = selec;
    }
}
